Apache Commons IO হল Apache Commons প্রকল্পের একটি গুরুত্বপূর্ণ লাইব্রেরি, যা Java ডেভেলপারদের জন্য I/O (Input/Output) সম্পর্কিত কার্যক্রম সহজ এবং কার্যকরী করে তোলে। এটি বিশেষভাবে ফাইল I/O, স্ট্রিম I/O, এবং ডিরেক্টরি I/O সম্পর্কিত কাজকে আরও দক্ষ এবং ব্যবহারকারী বান্ধব করে তোলে। Apache Commons IO-এর মাধ্যমে ডেভেলপাররা ফাইল ও স্ট্রিম সংক্রান্ত কাজগুলি দ্রুত এবং নিরাপদভাবে সম্পাদন করতে পারেন, যেমন ফাইল কপি, ফাইল মুভ, ফাইল রিড/রাইট, এবং স্ট্রিম কপি/ম্যানিপুলেশন।
FileUtils ক্লাসটি Apache Commons IO লাইব্রেরির সবচেয়ে ব্যবহৃত ক্লাসগুলোর একটি, যা ফাইল এবং ডিরেক্টরি সম্পর্কিত কার্যক্রম সহজ করার জন্য শক্তিশালী মেথড সরবরাহ করে। এর মাধ্যমে আপনি সহজেই ফাইল কপি, মুভ, ডিলিট, রিড, রাইট ইত্যাদি করতে পারেন।
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
public class FileUtilsExample {
public static void main(String[] args) {
try {
File sourceFile = new File("source.txt");
File destFile = new File("destination.txt");
// ফাইল কপি করা
FileUtils.copyFile(sourceFile, destFile);
System.out.println("ফাইল কপি সফল!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে:
আউটপুট:
ফাইল কপি সফল!
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
public class FileDeleteExample {
public static void main(String[] args) {
try {
File file = new File("fileToDelete.txt");
// ফাইল ডিলিট করা
FileUtils.forceDelete(file);
System.out.println("ফাইল ডিলিট সফল!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে:
আউটপুট:
ফাইল ডিলিট সফল!
IOUtils হল Apache Commons IO লাইব্রেরির একটি গুরুত্বপূর্ণ ক্লাস, যা input/output streams পরিচালনার জন্য ব্যবহার করা হয়। IOUtils স্ট্রিমের মধ্যে ডেটা কপি, স্ট্রিম ক্লোজিং, এবং স্ট্রিম থেকে ডেটা রিড/রাইট করার কাজকে সহজ করে তোলে।
import org.apache.commons.io.IOUtils;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class IOUtilsExample {
public static void main(String[] args) {
try (FileInputStream input = new FileInputStream("source.txt");
FileOutputStream output = new FileOutputStream("destination.txt")) {
// স্ট্রিম কপি করা
IOUtils.copy(input, output);
System.out.println("স্ট্রিম কপি সফল!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে:
আউটপুট:
স্ট্রিম কপি সফল!
import org.apache.commons.io.IOUtils;
import java.io.FileInputStream;
import java.io.IOException;
public class IOUtilsReadExample {
public static void main(String[] args) {
try (FileInputStream input = new FileInputStream("source.txt")) {
// স্ট্রিম থেকে ডেটা পড়া
String data = IOUtils.toString(input, "UTF-8");
System.out.println("ডেটা পড়া হয়েছে: " + data);
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে:
আউটপুট:
ডেটা পড়া হয়েছে: (source.txt ফাইলের কন্টেন্ট)
FilenameUtils হল Apache Commons IO লাইব্রেরির একটি ইউটিলিটি ক্লাস যা ফাইলের নাম এবং এক্সটেনশন সম্পর্কিত বিভিন্ন কার্যাবলী সম্পাদন করতে সহায়তা করে, যেমন ফাইলের এক্সটেনশন বের করা, ফাইলের পাথ আলাদা করা ইত্যাদি।
import org.apache.commons.io.FilenameUtils;
public class FilenameUtilsExample {
public static void main(String[] args) {
String filePath = "document/report.pdf";
// ফাইল এক্সটেনশন বের করা
String extension = FilenameUtils.getExtension(filePath);
System.out.println("ফাইল এক্সটেনশন: " + extension); // Output: pdf
}
}
এখানে:
আউটপুট:
ফাইল এক্সটেনশন: pdf
import org.apache.commons.io.FilenameUtils;
public class FilenameUtilsExample {
public static void main(String[] args) {
String filePath = "document/report.pdf";
// ফাইল পাথ আলাদা করা
String baseName = FilenameUtils.getBaseName(filePath);
String path = FilenameUtils.getPath(filePath);
System.out.println("ফাইলের নাম: " + baseName); // Output: report
System.out.println("ফাইলের পাথ: " + path); // Output: document/
}
}
এখানে:
আউটপুট:
ফাইলের নাম: report
ফাইলের পাথ: document/
Commons IO লাইব্রেরি DirectoryWalker ক্লাস প্রদান করে, যা ডিরেক্টরি এবং সাবডিরেক্টরির মধ্যে রিকোর্সিভভাবে সার্চ বা ট্র্যাভার্স করতে ব্যবহৃত হয়। এটি বিশেষভাবে ফাইল এবং ডিরেক্টরি ফিল্টারিং বা ট্র্যাভার্সিং এর জন্য ব্যবহার করা হয়।
import org.apache.commons.io.DirectoryWalker;
import java.io.File;
import java.io.IOException;
import java.util.List;
public class DirectoryWalkerExample extends DirectoryWalker {
public static void main(String[] args) throws IOException {
File directory = new File("path/to/directory");
// ডিরেক্টরি ট্র্যাভার্স করার জন্য DirectoryWalker ব্যবহার করা
DirectoryWalker walker = new DirectoryWalker() {
@Override
protected boolean handleFile(File file, int depth, List<File> results) {
// ফাইল হ্যান্ডলিং
System.out.println("ফাইল পাওয়া গেছে: " + file.getName());
return true;
}
};
walker.walk(directory, null);
}
}
এখানে:
Apache Commons IO লাইব্রেরি ফাইল I/O, স্ট্রিম I/O, এবং ডিরেক্টরি I/O সম্পর্কিত কার্যাবলীর জন্য শক্তিশালী ইউটিলিটি সরবরাহ করে। এর মাধ্যমে আপনি সহজে ফাইল কপি, ফাইল ডিলিট, স্ট্রিম কপি, স্ট্রিম রিড, ফাইল এক্সটেনশন বের করা, এবং ডিরেক্টরি ট্র্যাভার্সিং ইত্যাদি কাজ করতে পারবেন। লাইব্রেরিটির FileUtils, IOUtils, FilenameUtils, এবং DirectoryWalker এর মতো ক্লাসগুলি Java ডেভেলপারদের জন্য কার্যকরী ও ব্যবহারকারী বান্ধব টুল সরবরাহ করে যা তাদের কাজের গতি বৃদ্ধি করে এবং কোডের জটিলতা কমায়।
common.read_more